package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootSj;
import org.footballmanager.pandafootball.system.form.impl.FootSjSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;

public interface FootSjService extends BaseService<FootSj> {
    /**
     * 获取当前赛季
     *
     * @return 赛季主键
     */
    Long getSj();

    /**
     * 获取上个赛季的赛季主键
     *
     * @return 上赛季主键
     */
    Long getLastSj();

    /**
     * 获取正在进行中的赛季信息
     *
     * @return 正在进行中的赛季信息
     */
    FootSj getRunningSj();

    /**
     * 查询
     *
     * @param entityname       实体类名
     * @param map              参数
     * @param footSjSearchForm 条件
     */
    void search(String entityname, Model map, FootSjSearchForm footSjSearchForm);

    /**
     * 删除所有
     *
     * @param footSjSearchForm 条件
     * @param request          请求
     */
    void deleteAll(FootSjSearchForm footSjSearchForm, HttpServletRequest request);

    /**
     * 处理第一天的赛季数据
     *
     * @param sj 赛季实体
     */
    void processFirstDay(FootSj sj);

    /**
     * 处理第21天的赛季数据
     *
     * @param sj 赛季实体
     */
    void process21Day(FootSj sj);

    /**
     * 处理第28天的赛季数据
     *
     * @param date   时间
     * @param day    第day天
     * @param endday 本月的最后一天
     */
    void process28Day(Date date, int day, int endday);

    /**
     * 处理最后一天的赛季数据
     *
     * @param date 时间
     */
    void processLastDay(Date date);
}